package com.caoheng.pay.pay.channel;

import com.alibaba.fastjson.JSONObject;

/**
 * 
 */
public interface PayChannel {

    /**
     * 支付渠道类型
     * <p>
     *     1.微信：
     *         支付平台: APP(移动端支付)、JSAPI(h5页面调用)、Native(按支付协议生成支付二维码、再用微信扫一扫完成支付,PC网站、实体店..)
     *         支付类型: JSAPI
     *     2.支付宝:
     *         支付平台: APP、手机网站、
     * </p>
     * @param jsonObject
     * @param <E>
     * @return
     */
    <E> E executeForPay(JSONObject jsonObject);

    void executeForRefund();

    void executeForRefundQuery();

    void executeForPayOrderQuery();
}
